perl 数组操作 |
您所在的位置:网站首页 › nginx流控 数组第一个元素值 › perl 数组操作 |
数组末端元素操作 pop、push
@quarry = qw(bedrock slate lava granite);
=begin comment
@quarry 初始值是(bedrock,slate,lava,granite)
=cut
pop 取出数组中最后一个元素并将它返回 $rock1 = pop @quarry; $rock2 = pop(@quarry); =begin comment $rock1 的值为:granite $rock2 的值为:lava quarry 现在的值为:(bedrock,slate) =cut注意到上面的代码中,pop 后面的括号可加可不加,这是 perl 的惯例:只要不会因为拿掉括号就改变原意,括号就是可省略的。 如果数组是空的, pop 将不会执行任何操作且直接返回 undef。 与 pop 相对应的是 push 操作,添加一个或一串元素到数组末端,同样 push 后面的括号可加可不加。 push (@quarry, 'dolomite'); =begin comment 末端追加一个元素 quarry 现在的值为:(bedrock,slate,dolomite) =cut push @quarry, 'quartz'; =begin comment 再追加一个元素 quarry 现在的值为:(bedrock,slate,dolomite,quartz) =cut @others = qw(schist breccia marble); push @quarry, @others; =begin comment 也可以追加另一个数组中的元素 quarry 现在的值为:(bedrock,slate,dolomite,quartz,schist,breccia,marble) =cutpush 可以向末端追加多个元素,注意最后一个语句,这里并不是追加另一个名为 others 的数组,而是追加数组 others 中的元素,数组的元素不可以是另一个数组而只能是标量,这里其实是把数组名展开成它所包含的元素列表。 数组首位元素操作 shift、unshift类似 pop,shift 取出首位元素并将它返回,如果数组为空,将不执行任何操作,并返回 undef。 $rock1 = shift (@quarry); $rock2 = shift @quarry; =begin comment rock1 的值为 bedrock rock2 的值为 slate quarry 现在的值为:(dolomite,quartz,schist,breccia,marble) =cut相对应的,unshift 向数组头部插入一个或一组元素。 unshift(@quarry, 'lava'); @others = qw(feldspar granite); unshift @quarry, @others; =begin comment quarry 现在的值为:(feldspar,granite,lava,dolomite,quartz,schist,breccia,marble) =cutshift、unshift 后面的括号同样可加可不加 使用 splice 添加或移除数组中间的元素splice 函数的语法如下: splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ] 各参数含义如下: @ARRAY:操作对象,必须是数组。 OFFSET:起始位置的索引。 LENGTH:操作的元素个数,0 表示在 OFFSET 处添加元素,大于 0 表示删除起始索引处开始的 LENGTH 个元素。 LIST:添加的元素列表。 删除指定位置到数组末端的全部元素: @removed = splice @quarry, 5; =begin comment 从索引位置为 5 的元素开始一直到末尾的元素全部取出,并返回。 此时, @removed 的值为:(schist,breccia,marble) @quarry 的值为:(feldspar,granite,lava,dolomite,quartz) =cut删除指定位置开始的 n 个元素: @removed = splice(@quarry, 1, 2); =begin comment 删除从索引位置为 1 开始的 2 个元素,并返回。 此时, @removed 的值为:(granite,lava) @quarry 的值为:(feldspar,dolomite,quartz) =cutLENGTH 的值为 0 时,在指定位置添加元素: @others = qw(bedrock slate); splice(@quarry, 1, 0, @others); =begin comment 在索引位置为 1 处,添加 @others 中的元素,此时, @quarry 的值为:(feldspar,bedrock,slate,dolomite,quartz) =cut splice @quarry 2, 0, 'lava'; =begin comment 在索引位置为 2 处添加一个元素,此时, @quarry 的值为:(feldspar,bedrock,lava,slate,dolomite,quartz) =cut合并上述操作: splice @quarry, 1, 3, qw(evaporite tuff); =begin comment 从索引为 1 的位置开始,删除 3 个元素,再追加 2 个元素,此时, @quarry 的值为:(feldspar,evaporite,tuff,dolomite,quartz) =cut 数组最后一个元素的索引值 $#ARRAY $ix_last = $#quarry =begin comment $ix_last 的值为 4 =cut |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |